package acciones;

import java.util.Vector;

import persistencia.ArticuloDAO;
import persistencia.RevisorDAO;
import dominio.Articulo;
import dominio.Persona;
import dominio.Revisor;
import correo.EnviarMail;

import com.opensymphony.xwork2.ActionSupport;

import correo.EnviarMail;

public class AsignarRevisores extends ComprobarSesion {
	private static final long serialVersionUID = 1L;
	private Persona persona;
	private Vector<Revisor> revisores = new Vector<Revisor>();
	private String opcion;
	private String palabrasClave;
	private String titulo;
	private int articulo;
	private String revisorElegido;

	public String execute() {
		try {
			persona =  checkSesion("persona");
			if(persona != null){
				if(opcion.equalsIgnoreCase("Asignar")){
					String[] tokens = revisorElegido.split(",( )*");
			        for(String t : tokens) {
			            RevisorDAO.invitarArticulo(t, articulo, persona.getDni());
			            EnviarMail mail = new EnviarMail();
			            String dest = RevisorDAO.newRevisor(t).getEmail();
			            String msj = "Estimado/a "+RevisorDAO.newRevisor(t).getNombre()+",\n\n" +
			            		"Este correo se ha generado automaticamente para " +
			            		"poner en su conocimiento que ha sido invitado para realizar la revision " +
			                    "del articulo titulado '"+ titulo + "'. Por favor acceda al sistema y conteste " +
			                    "a la solicitud con la mayor brevedad posible.\n\n Un saludo "+persona.getNombre()+".";
			            String asunt = "Invitacion para revisar un articulo.";
			            mail.enviarCorreo(dest, msj, asunt);
			        }
				}
				else{
					revisores = RevisorDAO.RevisoresPalabraClave(palabrasClave);
				}
				return SUCCESS;
			}
			else{
				return ERROR;
			}
		}
		catch (Exception e) {
			return ERROR;
		}
	}
	
	public String getOpcion() {
		return opcion;
	}

	public void setOpcion(String opcion) {
		this.opcion = opcion;
	}

	public Vector<Revisor> getRevisores() {
		return revisores;
	}

	public void setRevisores(Vector<Revisor> revisores) {
		this.revisores = revisores;
	}

	public String getPalabrasClave() {
		return palabrasClave;
	}

	public void setPalabrasClave(String palabrasClave) {
		this.palabrasClave = palabrasClave;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public String getRevisorElegido() {
		return revisorElegido;
	}

	public void setRevisorElegido(String revisorElegido) {
		this.revisorElegido = revisorElegido;
	}

	public int getArticulo() {
		return articulo;
	}

	public void setArticulo(int articulo) {
		this.articulo = articulo;
	}

	public Persona getPersona() {
		return persona;
	}

	public void setPersona(Persona persona) {
		this.persona = persona;
	}

	
	
}
